//对axios进行二次封装
import axios from "axios";

//引入nprogress样式
import nprogress from 'nprogress'
import 'nprogress/nprogress.css'

//引入vuex
import store from '@/store'

//利用axios里的create方法创建axios实例
const requests=axios.create({
    //设置基础路径
    baseURL:'/api',
    //设置访问超时时间
    timeout:5000
})
//设置请求拦截器
requests.interceptors.request.use((config)=>{
    //返回config配置对象，里边有一个属性很重要，header请求头
    //给请求头添加一个userTempId临时id
    if(store.state.detail.uuid_token){
        config.headers.userTempId=store.state.detail.uuid_token;
    }
    //给请求头添加token
    if(store.state.user.token){
        config.headers.token=store.state.user.token;
    }
    //进度条开始
    nprogress.start();
    return config;
})
//设置响应拦截器
requests.interceptors.response.use((res)=>{
    //成功的回调函数：当访问数据返回后，可以响应拦截，做一些业务处理
    //进度条结束
    nprogress.done();
    return res.data;
},(error)=>{
    return Promise.reject(new Error('fail'))
})
export default requests;